Ein Self-Join ist ein regulärer Join, bei dem eine Tabelle mit sich selbst verknüpft wird.
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition
T1 und T2 sind unterschiedliche Aliase für dieselbe Tabelle.
In diesem Tutorial verwenden wir die berühmte Beispieldatenbank „Northwind“.
Nachfolgend finden Sie ein Beispiel aus der Tabelle „Customers“ („Kunden“).
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Die folgende SQL-Anweisung wählt Kunden aus einer Stadt (City) aus:
Run SQLSELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City